HTTP请求报文与响应报文格式,含:get与post的区别 | 您所在的位置:网站首页 › android post和get的区别 › HTTP请求报文与响应报文格式,含:get与post的区别 |
HTTP 请求报文格式: HTTP 请求报文主要由请求行,请求头部,请求正文3部分组成 1 ,请求行 由3部分组成,分别为:请求方法,URL(见备注1 )以及协议版本,之间由空格分隔 请求方法包括GET,HEAD,PUT,POST,TRACE,OPTIONS,DELETE以及扩展方法,当然并不是所有的服务器都实现了所有的方法,部分方法即便支持,处于安全性的考虑也是不可用的(见备注) 2 ) 在互联网应用中,最常用的方法的英文GET状语从句:POST: 得到 GET 方法是默认的HTTP请求方法,我们日常用GET方法来提交表单数据,然而用GET方法提交的表单数据只经过了简单的编码,同时它将作为URL的一部分向网站服务器发送,因此,如果使用GET方法来提交表单数据就存在着安全隐患上。 例如是:http://127.0.0.1/login.jsp名称=张氏与年龄= 30&提交=%CC%E +%BD%BB 从上面的URL请求中,很容易就可以辩认出表单提交的内容。(?之后的内容),另外由于GET方法提交的数据是作为URL请求的一部分所以提交的数据量不能太大。 Post POST 方法是GET方法的一个替代方法,它主要是向Web服务器提交表单数据,尤其是大批量的数据.POST方法克服了GET方法的一些缺点。通过POST方法提交表单数据时,数据不是作为URL请求的一部分而是作为标准数据传送网络服务器,这就克服了GET方法中的信息无法保密和数据。因此,出于安全的考虑以及对用户隐私,通常表单提交时采用POST方法。 从编程的角度来讲,如果用户通过GET方法提交数据,则数据存放在QUERY_STRING环境变量中,而POST方法提交的数据则可以从标准。 协议版本的格式为:HTTP /。主版本号次版本号,常用的有HTTP / 1.0和HTTP / 1.1 HTTP1.0 和HTTP1.1的区别: 1)在HTTP1.0协议中,客户端与网络服务器建立连接后,只能获得一个网络资源。 2)HTTP1.1 协议,允许客户端与网络服务器建立连接后,在一个连接上获取多个网络资源。(常用) 面试中常会问道获取与发布请求的区别: 类别 GET POST点击刷新或返回按钮 没有影响 重新发送数据 添加书签 可以 不可以 缓存 可以 不可以 编码类型 应用程序/ x-WWW窗体-urlencoded application / x-www-form-urlencoded或multipart / form-data。请为二进制数据使用多编码 历史记录 有 没有 长度限制 有(1024K) 没有 数据类型限制 只允许ASCII字符类型 没有限制,可以是二进制数据 安全性
查询字符串会显示在地址栏的网址中,不安全,请不要使用GET请求提交敏感数据
因为数据不会显示在地址栏中,也不会缓存下来或保存在浏览记录中,所以看POST 求情比GET 请求安全,但也不是最安全的方式。如需要传送敏感数据,请使用加密方式传输 可见性 查询字符串在URL中可见 查询字符串不会显示在地址栏中,不可见 2 ,请求头部 请求头部为请求报文添加了一些附加信息,由“名/值”对组成,每行一对,名和值之间使用冒号分隔 常见请求头如下: 请求头 说明 主办 接受请求的服务器地址,可以是IP:端口号,也可以是域名 用户代理 发送请求的应用程序名称 连接 指定与连接相关的属性,如连接:保持活动 接收字符 通知服务端可以发送的编码格式 接受编码 通知服务端可以发送的数据压缩格式 接受语言 通知服务端可以发送的语言 头部请求的求最后会有一个空行,表示请求头部结束,接下来为请求正文,行这一非常重要,必不可少 3 ,请求正文 可选部分,比如GET请求就没有请求正文 GET 请求示例: POST 请求示例:
HTTP 响应报文格式: HTTP 响应报文主要由状态行,响应头部,响应正文3部分组成 1 ,状态行 由3部分组成,分别为:协议版本,状态码,状态码描述,之间由空格分隔 状态代码为3位数字,200〜299的状态码表示成功,300〜399的状态码指资源重定向,400〜499的状态码指客户端请求出错,500〜599的状态码指服务端出错( HTTP / 1.1向协议中引入了信息性状态码,范围为100〜199) 这里列举几个常见的: 状态码 说明 200 响应成功 302 跳转,跳转地址通过响应头中的位置属性指定(JSP中Forward和Redirect之间的区别) 400 客户端请求有语法错误,不能被服务器识别 403 服务器接收到请求,但是拒绝提供服务(认证失败) 404 请求资源不存在 500 服务器内部错误 2 ,响应头部 与请求头部类似,为响应报文添加了一些附加信息 常见响应头部如下: 响应头 说明 服务器 服务器应用程序软件的名称和版本 内容类型 响应正文的类型(是图片还是二进制字符串) 内容长度 响应正文长度 内容字符集 响应正文使用的编码 内容编码 响应正文使用的数据压缩格式 内容语言 响应正文使用的语言 位置 用于重定向接受者到一个新的位置 响应示例: 备注1-PS: URI ,URL和URN之间的区别 URI 全名为UniformResource Indentifier(统一资源标识),用来唯一的标识一个资源,是一个通用的概念,URI由两个主要的子集URL和URN组成 URL 全名为UniformResource Locator(统一资源定位),通过描述资源的位置来标识资源 URN 全名为UniformResource Name(统一资源命名),通过资源的名字来标识资源,与其所处的位置无关,这样即使资源的位置发生变动,其URN也不会变化 HTTP 规范将更通用的概念URI作为其资源标识符,但是实际上,HTTP应用程序处理的只是URI的URL子集 备注2- 请求方法 方法 描述 得到 对服务器资源的简单请求 头 类似于获取请求,只不过返回的响应中没有具体的内容,用于获取报头 POST 用于发送包含用户提交数据的请求 放 传说当前请求文档的一个版本 删除 发送一个用来删除指定文档的请求 跟踪 发送请求的一个副本,以跟踪其处理进程 OPTIONS 返回所有可用的方法;可检查服务器支持哪些方法 CONNECT 用于SSL隧道的基于代理的请求
|
CopyRight 2018-2019 实验室设备网 版权所有 |